1. Field of the Invention
The invention disclosed and claimed herein generally pertains to a method for selecting or identifying data entries for requested operations, wherein the entries are contained in a directory that may be partitioned. More particularly, the invention pertains to a method of the above type wherein a specified hashing control index is defined and used to filter an operation request, so that the request will apply only to entries that reside in a particular partition or partitions of the directory. Even more particularly, the invention pertains to a method of the above type that can be requested either by a client that requests an operation, or by an associated server's configuration, so that clients need not be involved in the hashing procedure.
2. Description of the Related Art
The Lightweight Directory Access Protocol (LDAP) is an application protocol designed for use in querying and modifying directory services in a Transmission Control Program/Internet Protocol (TCP/IP) environment. These directory services are associated with a directory in the form of a set of information objects with similar attributes organized in a logical and hierarchical manner. A very common example is a standard telephone directory, in which a series of names are arranged alphabetically, together with an associated street address and phone number. An LDAP directory tree may also reflect other methods of organization, depending on the model chosen.
LDAP deployments typically use Domain Name System (DNS) names for structuring the upper levels of the naming hierarchy, while inside the directory other data entries are found which represent leaf-like entries (or multiple data entries). A data entry generally consists of a set of attributes, wherein an attribute has a name such as an attribute type or description, accompanied by one or more associated values. Each entry has a unique identifier known as the Distinguished Name (DN) of the entry. The Distinguished Name for a particular data entry consists of a Relative Distinguished Name (RDN), derived from the attributes of the particular entry, and the Distinguished Name for the parent entry of the particular data entry. The data content of the tree structure grows, as entries or attributes are successively added thereto.
In a distributed LDAP directory, each data entry is placed or distributed into one of multiple partitions, using a DN hashing procedure. In such procedure, a data entry is partitioned based on hashing the RDN part of the entry DN, to provide a corresponding value. Based on this value, the entry DN is placed into a hashing function, or algorithm, which then assigns the entry to a partition.
In an LDAP directory, it is frequently necessary to require that certain LDAP operations are to be performed on some of the data entries in the directory, but not on others. Searches, adds, and modifications are examples of such operations that may be requested. However, there is currently no mechanism available for filtering an operation request that is based on hashing, that is, applying a hashing algorithm to the DN values of respective entries, in order to select only the intended data entries for the request. Filtering techniques currently available in LDAP to perform this task rely on specific attributes within the entries, and thus tend to be comparatively inefficient.